import java.util.Scanner;//导包语句

public class InStatementTest1 {
    public static void main(String[] args) {
        /*
        Java中规定，使用java.lang包的核心类库，例如：String，System，Math等，不需要导包。
        但是如果使用其他包的核心类库，例如：Scanner等，需要加一句import语句，即导包，即告诉JVM，去哪个文件夹下找这个类。

        System.out：输出xx内容到控制台
        System.in：从控制台接收用户输入的数据

        Scanner input = new Scanner(System.in); 代码中只有1个地方我们可以修改，input
            input是一个标识符，或者它是一个变量名，或者它是一个对象名
            标识符的概念 > 变量名的概念 > 对象名的概念

            input的命名只要遵循标识符的命名规则和规范，建议见名知意，小驼峰命名法
         */
        Scanner input = new Scanner(System.in);

        /*
        当用户输入的数据的类型与接收数据的变量的类型不一致，
        就会发生java.util.InputMismatchException（输入不匹配异常）
         */

        System.out.print("请输入姓名：");
        String name = input.next();//从控制台扫描用户输入的下一个字符串

        System.out.print("请输入年龄：");
        int age = input.nextInt();

        System.out.print("请输入体重：");
        double weight = input.nextDouble();

        System.out.print("请输入性别：");
//        String sex = input.next();
        char sex = input.next().charAt(0);//先以字符串扫描，0代表然后从字符串中取第1个字符。

        System.out.print("请输入是否单身：");
        boolean isSingle = input.nextBoolean();


        System.out.println("name = " + name);
        System.out.println("age = " + age);
        System.out.println("weight = " + weight);
        System.out.println("sex = " + sex);
        System.out.println("isSingle = " + isSingle);

        input.close();
        //最后一句，不写，程序不会报错
        //但是通常我们会建议大家写这句话
        //因为键盘输入涉及到IO操作，IO操作涉及到硬件的操作，Java不能直接操作硬件，会调用一下C的代码，这个时候需要告诉JVM需要手动释放一些资源和内存。
        //涉及到IO操作，网络连接等都需要释放资源
    }
}
